home *** CD-ROM | disk | FTP | other *** search
- TITLE WDASM Example Program
- .286
- .MODEL SMALL
-
- INCLUDE HELLO2.INC
-
- EXTRN DefWindowProc:FAR
- EXTRN GetMessage:FAR
- EXTRN TranslateMessage:FAR
- EXTRN FatalExit:FAR
- EXTRN DispatchMessage:FAR
- EXTRN GetVersion:FAR
- EXTRN GetDosEnvironment:FAR
- EXTRN LocalAlloc:FAR
- EXTRN LocalRealloc:FAR
- EXTRN LocalFree:FAR
- EXTRN FatalAppExit:FAR
- EXTRN LocalSize:FAR
- EXTRN UpdateWindow:FAR
- EXTRN GlobalRealloc:FAR
- EXTRN GlobalSize:FAR
- EXTRN InitApp:FAR
- EXTRN PostQuitMessage:FAR
- EXTRN LockSegment:FAR
- EXTRN UnlockSegment:FAR
- EXTRN WaitEvent:FAR
- EXTRN GetClientRect:FAR
- EXTRN GetModuleFileName:FAR
- EXTRN BeginPaint:FAR
- EXTRN EndPaint:FAR
- EXTRN CreateWindow:FAR
- EXTRN ShowWindow:FAR
- EXTRN LoadCursor:FAR
- EXTRN LoadIcon:FAR
- EXTRN RegisterClass:FAR
- EXTRN InitTask:FAR
- EXTRN GetStockObject:FAR
- EXTRN DrawText:FAR
- EXTRN Dos3Call:FAR
-
- EXTRN __winflags:FAR
-
- .CODE
-
- Procedure0000 PROC NEAR
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- Procedure0000 ENDP
-
- Procedure0010 PROC NEAR
- ENTER 002EH, 0
- CMP WORD PTR [BP+10], 0
- JZ L001DH
- JMP NEAR PTR L0085H
- L001DH: MOV WORD PTR [BP-46], 0003H
- MOV WORD PTR [BP-44], OFFSET WNDPROC
- MOV WORD PTR [BP-42], SEG WNDPROC
- MOV WORD PTR [BP-40], 0000H
- MOV WORD PTR [BP-38], 0000H
- MOV AX, WORD PTR [BP+12]
- MOV WORD PTR [BP-36], AX
- PUSH 0
- PUSH 0
- PUSH 7F00H
- CALL FAR PTR LoadIcon
- MOV WORD PTR [BP-34], AX
- PUSH 0
- PUSH 0
- PUSH 7F00H
- CALL FAR PTR LoadCursor
- MOV WORD PTR [BP-32], AX
- PUSH 0
- CALL FAR PTR GetStockObject
- MOV WORD PTR [BP-30], AX
- MOV WORD PTR [BP-28], 0000H
- MOV WORD PTR [BP-26], 0000H
- MOV AX, 0010H
- MOV DX, DS
- MOV WORD PTR [BP-24], AX
- MOV WORD PTR [BP-22], DX
- LEA AX, WORD PTR [BP-46]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR RegisterClass
- L0085H: MOV AX, 0010H
- MOV DX, DS
- PUSH DX
- PUSH AX
- MOV AX, 00B0H
- MOV DX, DS
- PUSH DX
- PUSH AX
- PUSH 00CFH
- PUSH 0
- PUSH 8000H
- PUSH 8000H
- PUSH 8000H
- PUSH 8000H
- PUSH 0
- PUSH 0
- PUSH WORD PTR [BP+12]
- PUSH 0
- PUSH 0
- CALL FAR PTR CreateWindow
- MOV WORD PTR [BP-2], AX
- PUSH AX
- PUSH WORD PTR [BP+4]
- CALL FAR PTR ShowWindow
- PUSH WORD PTR [BP-2]
- CALL FAR PTR UpdateWindow
- L00C8H: LEA AX, WORD PTR [BP-20]
- MOV DX, SS
- PUSH DX
- PUSH AX
- PUSH 0
- PUSH 0
- PUSH 0
- CALL FAR PTR GetMessage
- AND AX, AX
- JZ L00F8H
- LEA AX, WORD PTR [BP-20]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR TranslateMessage
- LEA AX, WORD PTR [BP-20]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR DispatchMessage
- JMP SHORT L00C8H
- L00F8H: MOV AX, WORD PTR [BP-16]
- LEAVE
- RET 000AH
- Procedure0010 ENDP
-
-
- Procedure00FF PROC NEAR
- NOP
- Procedure00FF ENDP
-
- WNDPROC PROC FAR PUBLIC
- PUSH DS
- POP AX
- NOP
- INC BP
- PUSH BP
- MOV BP, SP
- PUSH DS
- MOV DS, AX
- SUB SP, 002CH
- PUSH SI
- PUSH DI
- MOV SI, WORD PTR [BP+14]
- MOV AX, WORD PTR [BP+12]
- JMP NEAR PTR L0172H
- NOP
- L011AH: PUSH SI
- LEA AX, WORD PTR [BP-36]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR BeginPaint
- MOV DI, AX
- PUSH SI
- LEA AX, WORD PTR [BP-44]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR GetClientRect
- PUSH DI
- MOV AX, 00BEH
- MOV DX, DS
- PUSH DX
- PUSH AX
- PUSH -1
- LEA AX, WORD PTR [BP-44]
- MOV DX, SS
- PUSH DX
- PUSH AX
- PUSH 37
- CALL FAR PTR DrawText
- PUSH SI
- LEA AX, WORD PTR [BP-36]
- MOV DX, SS
- PUSH DX
- PUSH AX
- CALL FAR PTR EndPaint
- XOR AX, AX
- XOR DX, DX
- JMP SHORT L0197H
- NOP
- L0162H: PUSH 0
- CALL FAR PTR PostQuitMessage
- XOR AX, AX
- XOR DX, DX
- JMP SHORT L0197H
- NOP
- JMP SHORT L017FH
- L0172H: CMP AX, 0002H
- JZ L0162H
- CMP AX, 000FH
- JNZ L017FH
- JMP NEAR PTR L011AH
- L017FH: PUSH SI
- PUSH WORD PTR [BP+12]
- PUSH WORD PTR [BP+10]
- PUSH WORD PTR [BP+8]
- PUSH WORD PTR [BP+6]
- CALL FAR PTR DefWindowProc
- JMP SHORT L0197H
- NOP
- MOV WORD PTR [BP+14], SI
- L0197H: POP DI
- POP SI
- SUB BP, 2
- MOV SP, BP
- POP DS
- POP BP
- DEC BP
- RETF 000AH
- WNDPROC ENDP
-
-
- Procedure01A4 PROC NEAR
- L01A4H DW OFFSET __winflags
- L01A6H: MOV AL, -1
- PUSH AX
- CALL NEAR PTR Procedure0346
- L01ACH:: XOR BP, BP
- PUSH BP
- CALL FAR PTR InitTask
- OR AX, AX
- JZ L01A6H
- MOV WORD PTR D0054H, ES
- ADD CX, 0100H
- JB L01A6H
- MOV WORD PTR D001EH, CX
- MOV WORD PTR D0020H, SI
- MOV WORD PTR D0022H, DI
- MOV WORD PTR D0024H, BX
- MOV WORD PTR D0026H, ES
- MOV WORD PTR D0028H, DX
- CALL FAR PTR GetVersion
- MOV WORD PTR D0056H, AX
- MOV AH, 48
- TEST WORD PTR CS:L01A4H, 0001H
- JZ L01F4H
- CALL FAR PTR Dos3Call
- JMP SHORT L01F6H
- L01F4H: INT 0021H
- L01F6H: MOV WORD PTR D0058H, AX
- TEST WORD PTR CS:L01A4H, 0001H
- JNZ L0207H
- MOV AL, 0
- MOV BYTE PTR D005BH, AL
- L0207H: XOR AX, AX
- PUSH AX
- CALL FAR PTR WaitEvent
- PUSH WORD PTR D0022H
- CALL FAR PTR InitApp
- OR AX, AX
- JZ L01A6H
- CALL NEAR PTR Procedure0260
- CALL NEAR PTR Procedure0422
- CALL NEAR PTR Procedure05A0
- CALL NEAR PTR Procedure0800
- PUSH WORD PTR D0090H
- PUSH WORD PTR D008EH
- PUSH WORD PTR D008CH
- CALL NEAR PTR Procedure0244
- ADD SP, 6
- PUSH AX
- CALL NEAR PTR Procedure033F
- MOV AX, 0015H
- JMP NEAR PTR L0627H
- Procedure01A4 ENDP
-
- Procedure0244 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH WORD PTR D0022H
- PUSH WORD PTR D0020H
- PUSH WORD PTR D0026H
- PUSH WORD PTR D0024H
- PUSH WORD PTR D0028H
- CALL NEAR PTR Procedure0010
- POP BP
- RET
- Procedure0244 ENDP
-
-
- Procedure0260 PROC NEAR
- MOV AX, 3500H
- TEST WORD PTR CS:L01A4H, 0001H
- JZ L0273H
- CALL FAR PTR Dos3Call
- JMP SHORT L0275H
- L0273H: INT 0021H
- L0275H: MOV WORD PTR D0040H, BX
- MOV WORD PTR D0042H, ES
- PUSH CS
- POP DS
- MOV AX, 2500H
- MOV DX, 0622H
- TEST WORD PTR CS:L01A4H, 0001H
- JZ L0295H
- CALL FAR PTR Dos3Call
- JMP SHORT L0297H
- L0295H: INT 0021H
- L0297H: PUSH SS
- POP DS
- MOV CX, WORD PTR D00A6H
- JCXZ L02C8H
- MOV ES, WORD PTR D0054H
- MOV SI, WORD PTR ES:D002CH
- MOV AX, WORD PTR D00A8H
- MOV DX, WORD PTR D00AAH
- XOR BX, BX
- CALL DWORD PTR D00A4H
- JAE L02BAH
- JMP NEAR PTR L041CH
- L02BAH: MOV AX, WORD PTR D00ACH
- MOV DX, WORD PTR D00AEH
- MOV BX, 0003H
- CALL DWORD PTR D00A4H
- L02C8H: MOV ES, WORD PTR D0054H
- MOV CX, WORD PTR ES:D002CH
- JCXZ L0311H
- MOV ES, CX
- XOR DI, DI
- L02D7H: CMP BYTE PTR ES:[DI], 0
- JZ L0311H
- MOV CX, 000DH
- MOV SI, 0032H
- REPE CMPSB
- JZ L02F2H
- MOV CX, 7FFFH
- XOR AX, AX
- REPNE SCASB
- JNZ L0311H
- JMP SHORT L02D7H
- L02F2H: PUSH ES
- PUSH DS
- POP ES
- POP DS
- MOV SI, DI
- MOV DI, 0064H
- MOV CL, 4
- L02FDH: LODSB
- SUB AL, 65
- JB L030FH
- SHL AL, CL
- XCHG DX, AX
- LODSB
- SUB AL, 65
- JB L030FH
- OR AL, DL
- STOSB
- JMP SHORT L02FDH
- L030FH: PUSH SS
- POP DS
- L0311H: MOV SI, 00B0H
- MOV DI, 00B0H
- CALL NEAR PTR Procedure03E3
- MOV SI, 00B0H
- MOV DI, 00B0H
- CALL NEAR PTR Procedure03F2
- MOV SI, 00B0H
- MOV DI, 00B0H
- CALL NEAR PTR Procedure03E3
- MOV SI, 00B0H
- MOV DI, 00B0H
- CALL NEAR PTR Procedure03E3
- MOV SI, 00B0H
- MOV DI, 00B0H
- CALL NEAR PTR Procedure03F2
- RET
- Procedure0260 ENDP
-
-
- Procedure033F PROC NEAR
- PUSH BP
- MOV BP, SP
- XOR CX, CX
- JMP SHORT L0360H
- Procedure033F ENDP
-
- Procedure0346 PROC NEAR
- PUSH BP
- MOV BP, SP
- MOV CX, 0001H
- JMP SHORT L0360H
- PUSH BP
- MOV BP, SP
- PUSH SI
- PUSH DI
- MOV CX, 0100H
- JMP SHORT L0360H
- PUSH BP
- MOV BP, SP
- PUSH SI
- PUSH DI
- MOV CX, 0101H
- L0360H:: MOV BYTE PTR D0099H, CH
- PUSH CX
- OR CL, CL
- JNZ L0385H
- MOV SI, 022CH
- MOV DI, 022CH
- CALL NEAR PTR Procedure03E3
- MOV SI, 00B0H
- MOV DI, 00B0H
- CALL NEAR PTR Procedure03E3
- MOV SI, WORD PTR [BP+4]
- PUSH SI
- CALL NEAR PTR Procedure0800
- ADD SP, 2
- L0385H: MOV SI, 00B0H
- MOV DI, 00B0H
- CALL NEAR PTR Procedure03E3
- MOV SI, 00B0H
- MOV DI, 00B0H
- CALL NEAR PTR Procedure03F2
- CALL NEAR PTR Procedure03BA
- POP AX
- OR AH, AH
- JNZ L03B6H
- MOV AX, WORD PTR [BP+4]
- MOV AH, 76
- TEST WORD PTR CS:L01A4H, 0001H
- JZ L03B4H
- CALL FAR PTR Dos3Call
- JMP SHORT L03B6H
- L03B4H: INT 0021H
- L03B6H: POP DI
- POP SI
- POP BP
- RET
- Procedure0346 ENDP
-
-
- Procedure03BA PROC NEAR
- MOV CX, WORD PTR D00A6H
- JCXZ L03C7H
- MOV BX, 0002H
- CALL DWORD PTR D00A4H
- L03C7H: PUSH DS
- LDS DX, DWORD PTR D0040H
- MOV AX, 2500H
- TEST WORD PTR CS:L01A4H, 0001H
- JZ L03DFH
- CALL FAR PTR Dos3Call
- JMP SHORT L03E1H
- L03DFH: INT 0021H
- L03E1H: POP DS
- RET
- Procedure03BA ENDP
-
-
- Procedure03E3 PROC NEAR
- L03E3H: CMP SI, DI
- JAE L03F1H
- DEC DI
- DEC DI
- MOV CX, WORD PTR [DI]
- JCXZ L03E3H
- CALL CX
- JMP SHORT L03E3H
- L03F1H: RET
- Procedure03E3 ENDP
-
-
- Procedure03F2 PROC NEAR
- L03F2H: CMP SI, DI
- JAE L0404H
- SUB DI, 4
- MOV AX, WORD PTR [DI]
- OR AX, WORD PTR [DI+2]
- JZ L03F2H
- CALL DWORD PTR [DI]
- JMP SHORT L03F2H
- L0404H: RET
- Procedure03F2 ENDP
-
-
- Procedure0405 PROC NEAR
- L0405H DB 0000H
- Procedure0405 ENDP
-
- Procedure0406 PROC NEAR
- PUSH BP
- MOV BP, SP
- MOV AX, 00FCH
- PUSH AX
- CALL NEAR PTR Procedure0691
- MOV AX, 00FFH
- PUSH AX
- CALL NEAR PTR Procedure0691
- MOV SP, BP
- POP BP
- RET
- Procedure0406 ENDP
-
-
- Procedure041B PROC NEAR
- L041BH DB 0000H
- L041CH:: MOV AX, 0002H
- JMP NEAR PTR L0627H
- Procedure041B ENDP
-
- Procedure0422 PROC NEAR
- POP WORD PTR D009CH
- MOV AX, 0104H
- MOV CX, 0008H
- CALL NEAR PTR Procedure06C2
- MOV WORD PTR D0094H, DX
- MOV WORD PTR D0092H, AX
- PUSH DX
- PUSH AX
- PUSH WORD PTR D0022H
- PUSH DX
- PUSH AX
- MOV AX, 0104H
- PUSH AX
- CALL FAR PTR GetModuleFileName
- POP BX
- POP ES
- ADD BX, AX
- MOV BYTE PTR ES:[BX], 0
- MOV DX, 0001H
- MOV DI, 0001H
- MOV SI, 0081H
- MOV DS, WORD PTR D0054H
- L045CH: LODSB
- CMP AL, 32
- JZ L045CH
- CMP AL, 9
- JZ L045CH
- CMP AL, 13
- JZ L04D8H
- OR AL, AL
- JZ L04D8H
- INC DI
- L046EH: DEC SI
- L046FH: LODSB
- CMP AL, 32
- JZ L045CH
- CMP AL, 9
- JZ L045CH
- CMP AL, 13
- JZ L04D8H
- OR AL, AL
- JZ L04D8H
- CMP AL, 34
- JZ L04A8H
- CMP AL, 92
- JZ L048BH
- INC DX
- JMP SHORT L046FH
- L048BH: XOR CX, CX
- L048DH: INC CX
- LODSB
- CMP AL, 92
- JZ L048DH
- CMP AL, 34
- JZ L049BH
- ADD DX, CX
- JMP SHORT L046EH
- L049BH: MOV AX, CX
- SHR CX, 1
- ADC DX, CX
- TEST AL, 1
- JNZ L046FH
- JMP SHORT L04A8H
- L04A7H: DEC SI
- L04A8H: LODSB
- CMP AL, 13
- JZ L04D8H
- OR AL, AL
- JZ L04D8H
- CMP AL, 34
- JZ L046FH
- CMP AL, 92
- JZ L04BCH
- INC DX
- JMP SHORT L04A8H
- L04BCH: XOR CX, CX
- L04BEH: INC CX
- LODSB
- CMP AL, 92
- JZ L04BEH
- CMP AL, 34
- JZ L04CCH
- ADD DX, CX
- JMP SHORT L04A7H
- L04CCH: MOV AX, CX
- SHR CX, 1
- ADC DX, CX
- TEST AL, 1
- JNZ L04A8H
- JMP SHORT L046FH
- L04D8H: PUSH SS
- POP DS
- MOV WORD PTR D008CH, DI
- ADD DX, DI
- INC DI
- SHL DI, 1
- ADD DX, DI
- INC DX
- AND DL, -2
- SUB SP, DX
- MOV AX, SP
- MOV WORD PTR D008EH, AX
- MOV BX, AX
- ADD DI, BX
- PUSH SS
- POP ES
- LDS SI, DWORD PTR D0092H
- MOV WORD PTR SS:[BX], SI
- INC BX
- INC BX
- MOV DS, WORD PTR SS:D0054H
- MOV SI, 0081H
- JMP SHORT L050CH
- L0509H: XOR AX, AX
- STOSB
- L050CH: LODSB
- CMP AL, 32
- JZ L050CH
- CMP AL, 9
- JZ L050CH
- CMP AL, 13
- JZ L0595H
- OR AL, AL
- JZ L0595H
- MOV WORD PTR SS:[BX], DI
- INC BX
- INC BX
- L0522H: DEC SI
- L0523H: LODSB
- CMP AL, 32
- JZ L0509H
- CMP AL, 9
- JZ L0509H
- CMP AL, 13
- JZ L0592H
- OR AL, AL
- JZ L0592H
- CMP AL, 34
- JZ L055FH
- CMP AL, 92
- JZ L053FH
- STOSB
- JMP SHORT L0523H
- L053FH: XOR CX, CX
- L0541H: INC CX
- LODSB
- CMP AL, 92
- JZ L0541H
- CMP AL, 34
- JZ L0551H
- MOV AL, 92
- REP STOSB
- JMP SHORT L0522H
- L0551H: MOV AL, 92
- SHR CX, 1
- REP STOSB
- JAE L055FH
- MOV AL, 34
- STOSB
- JMP SHORT L0523H
- L055EH: DEC SI
- L055FH: LODSB
- CMP AL, 13
- JZ L0592H
- OR AL, AL
- JZ L0592H
- CMP AL, 34
- JZ L0523H
- CMP AL, 92
- JZ L0573H
- STOSB
- JMP SHORT L055FH
- L0573H: XOR CX, CX
- L0575H: INC CX
- LODSB
- CMP AL, 92
- JZ L0575H
- CMP AL, 34
- JZ L0585H
- MOV AL, 92
- REP STOSB
- JMP SHORT L055EH
- L0585H: MOV AL, 92
- SHR CX, 1
- REP STOSB
- JAE L0523H
- MOV AL, 34
- STOSB
- JMP SHORT L055FH
- L0592H: XOR AX, AX
- STOSB
- L0595H: PUSH SS
- POP DS
- MOV WORD PTR [BX], 0000H
- JMP WORD PTR D009CH
- L059FH DB 0000H
- Procedure0422 ENDP
-
- Procedure05A0 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH DS
- CALL FAR PTR GetDosEnvironment
- OR AX, AX
- JZ L05AFH
- MOV DX, AX
- L05AFH: MOV BX, DX
- MOV ES, DX
- XOR AX, AX
- XOR SI, SI
- XOR DI, DI
- MOV CX, 0FFFFH
- OR BX, BX
- JZ L05CEH
- CMP BYTE PTR ES:D0000H, 0
- JZ L05CEH
- L05C8H: REPNE SCASB
- INC SI
- SCASB
- JNZ L05C8H
- L05CEH: MOV AX, DI
- INC AX
- AND AL, -2
- INC SI
- MOV DI, SI
- SHL SI, 1
- MOV CX, 0009H
- CALL NEAR PTR Procedure06C2
- PUSH AX
- MOV AX, SI
- CALL NEAR PTR Procedure06C2
- MOV WORD PTR D0090H, AX
- PUSH ES
- PUSH DS
- POP ES
- POP DS
- MOV CX, DI
- MOV BX, AX
- XOR SI, SI
- POP DI
- DEC CX
- JCXZ L061BH
- L05F5H: MOV AX, WORD PTR [SI]
- CMP AX, WORD PTR SS:D0032H
- JNZ L060EH
- PUSH CX
- PUSH SI
- PUSH DI
- MOV DI, 0032H
- MOV CX, 0006H
- REPE CMPSW
- POP DI
- POP SI
- POP CX
- JZ L0613H
- L060EH: MOV WORD PTR ES:[BX], DI
- INC BX
- INC BX
- L0613H: LODSB
- STOSB
- OR AL, AL
- JNZ L0613H
- LOOP L05F5H
- L061BH: MOV WORD PTR ES:[BX], CX
- POP DS
- POP BP
- RET
- Procedure05A0 ENDP
-
-
- Procedure0621 PROC NEAR
- L0621H DB 0000H
- PUSH SS
- POP DS
- MOV AX, 0003H
- L0627H:: PUSH AX
- PUSH AX
- CALL NEAR PTR Procedure0406
- CALL NEAR PTR Procedure0691
- CALL NEAR PTR Procedure0666
- XOR BX, BX
- OR AX, AX
- JZ L0655H
- MOV DI, AX
- MOV AX, 0009H
- CMP BYTE PTR [DI], 77
- JNZ L0645H
- MOV AX, 000FH
- L0645H: ADD DI, AX
- PUSH DI
- PUSH DS
- POP ES
- MOV AL, 13
- MOV CX, 0022H
- REPNE SCASB
- MOV BYTE PTR [DI-1], BL
- POP AX
- L0655H: PUSH BX
- PUSH DS
- PUSH AX
- CALL FAR PTR FatalAppExit
- MOV AX, 00FFH
- PUSH AX
- CALL FAR PTR FatalExit
- Procedure0621 ENDP
-
- Procedure0666 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH SI
- PUSH DI
- PUSH DS
- POP ES
- MOV DX, WORD PTR [BP+4]
- MOV SI, 00E2H
- L0673H: LODSW
- CMP AX, DX
- JZ L0688H
- INC AX
- XCHG SI, AX
- JZ L0688H
- XCHG DI, AX
- XOR AX, AX
- MOV CX, 0FFFFH
- REPNE SCASB
- MOV SI, DI
- JMP SHORT L0673H
- L0688H: XCHG SI, AX
- POP DI
- POP SI
- MOV SP, BP
- POP BP
- RET 0002H
- Procedure0666 ENDP
-
-
- Procedure0691 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH DI
- CMP WORD PTR D00A0H, 0
- JZ L06BAH
- PUSH WORD PTR [BP+4]
- CALL NEAR PTR Procedure0666
- OR AX, AX
- JZ L06BAH
- XCHG DX, AX
- MOV DI, DX
- XOR AX, AX
- MOV CX, 0FFFFH
- REPNE SCASB
- NOT CX
- DEC CX
- MOV BX, WORD PTR D005EH
- CALL NEAR PTR Procedure0805
- L06BAH: POP DI
- MOV SP, BP
- POP BP
- RET 0002H
- Procedure0691 ENDP
-
-
- Procedure06C1 PROC NEAR
- L06C1H DB 0000H
- Procedure06C1 ENDP
-
- Procedure06C2 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH BX
- PUSH ES
- PUSH CX
- MOV CX, 1000H
- XCHG CX, WORD PTR D009EH
- PUSH CX
- PUSH AX
- CALL NEAR PTR Procedure080C
- POP BX
- POP WORD PTR D009EH
- POP CX
- MOV DX, DS
- OR AX, AX
- JZ L06E4H
- POP ES
- POP BX
- JMP SHORT L06E9H
- L06E4H: MOV AX, CX
- JMP NEAR PTR L0627H
- L06E9H: MOV SP, BP
- POP BP
- RET
- Procedure06C2 ENDP
-
-
- Procedure06ED PROC NEAR
- L06EDH DB 0000H
- PUSH CX
- PUSH DI
- TEST BYTE PTR [BX+2], 1
- JZ L0759H
- CALL NEAR PTR Procedure07E0
- MOV DI, SI
- MOV AX, WORD PTR [SI]
- TEST AL, 1
- JZ L0704H
- SUB CX, AX
- DEC CX
- L0704H: INC CX
- INC CX
- MOV SI, WORD PTR [BX+4]
- OR SI, SI
- JZ L0759H
- ADD CX, SI
- JAE L071AH
- XOR AX, AX
- MOV DX, 0FFF0H
- JCXZ L0748H
- JMP SHORT L0759H
- L071AH: PUSH SS
- POP ES
- MOV AX, WORD PTR D009EH
- CMP AX, 1000H
- JZ L073BH
- MOV DX, 8000H
- L0728H: CMP DX, AX
- JB L0732H
- SHR DX, 1
- JNZ L0728H
- JMP SHORT L0754H
- L0732H: CMP DX, 8
- JB L0754H
- SHL DX, 1
- MOV AX, DX
- L073BH: DEC AX
- MOV DX, AX
- ADD AX, CX
- JAE L0744H
- XOR AX, AX
- L0744H: NOT DX
- AND AX, DX
- L0748H: PUSH DX
- CALL NEAR PTR Procedure077A
- POP DX
- JAE L075CH
- CMP DX, -16
- JZ L0759H
- L0754H: MOV AX, 0010H
- JMP SHORT L073BH
- L0759H: STC
- JMP SHORT L0777H
- L075CH: MOV DX, AX
- SUB DX, WORD PTR ES:[BX+4]
- MOV WORD PTR [BX+4], AX
- MOV WORD PTR [BX+10], DI
- MOV SI, WORD PTR [BX+12]
- DEC DX
- MOV WORD PTR [SI], DX
- INC DX
- ADD SI, DX
- MOV WORD PTR [SI], 0FFFEH
- MOV WORD PTR [BX+12], SI
- L0777H: POP DI
- POP CX
- RET
- Procedure06ED ENDP
-
-
- Procedure077A PROC NEAR
- MOV DX, AX
- TEST BYTE PTR [BX+2], 4
- JZ L0784H
- JMP SHORT L07D5H
- L0784H: PUSH DX
- PUSH CX
- PUSH BX
- MOV SI, WORD PTR [BX+6]
- MOV BX, WORD PTR CS:L01A4H
- XOR CX, CX
- OR DX, DX
- JNZ L079CH
- TEST BX, 0010H
- JNZ L07DBH
- INC CX
- L079CH: MOV AX, 0022H
- TEST BX, 0001H
- JNZ L07A8H
- MOV AX, 0020H
- L07A8H: PUSH SI
- PUSH CX
- PUSH DX
- PUSH AX
- CALL FAR PTR GlobalRealloc
- OR AX, AX
- JZ L07DBH
- CMP AX, SI
- JNZ L07D5H
- PUSH SI
- CALL FAR PTR GlobalSize
- OR DX, AX
- JZ L07D5H
- POP BX
- POP CX
- POP DX
- MOV AX, DX
- TEST BYTE PTR [BX+2], 4
- JZ L07D2H
- DEC DX
- MOV WORD PTR [BX-2], DX
- L07D2H: CLC
- JMP SHORT L07DFH
- L07D5H: MOV AX, 0012H
- JMP NEAR PTR L0627H
- L07DBH: POP BX
- POP CX
- POP DX
- STC
- L07DFH: RET
- Procedure077A ENDP
-
-
- Procedure07E0 PROC NEAR
- PUSH DI
- MOV SI, WORD PTR [BX+10]
- CMP SI, WORD PTR [BX+12]
- JNZ L07ECH
- MOV SI, WORD PTR [BX+8]
- L07ECH: LODSW
- CMP AX, -2
- JZ L07FAH
- MOV DI, SI
- AND AL, -2
- ADD SI, AX
- JMP SHORT L07ECH
- L07FAH: DEC DI
- DEC DI
- MOV SI, DI
- POP DI
- RET
- Procedure07E0 ENDP
-
-
- Procedure0800 PROC NEAR
- PUSH BP
- MOV BP, SP
- POP BP
- RET
- Procedure0800 ENDP
-
-
- Procedure0805 PROC NEAR
- MOV AX, 0014H
- JMP NEAR PTR L0627H
- L080BH DB 0000H
- Procedure0805 ENDP
-
- Procedure080C PROC NEAR
- PUSH BP
- MOV BP, SP
- SUB SP, 4
- MOV AX, 0FFFFH
- PUSH AX
- CALL FAR PTR LockSegment
- MOV AX, 0020H
- PUSH AX
- CMP WORD PTR [BP+4], 0
- JZ L082AH
- MOV AX, WORD PTR [BP+4]
- JMP SHORT L082DH
- L082AH: MOV AX, 0001H
- L082DH: PUSH AX
- CALL FAR PTR LocalAlloc
- MOV WORD PTR [BP-2], AX
- MOV AX, 0FFFFH
- PUSH AX
- CALL FAR PTR UnlockSegment
- MOV AX, WORD PTR [BP-2]
- MOV SP, BP
- POP BP
- RET
- Procedure080C ENDP
-
-
- Procedure0846 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH WORD PTR [BP+4]
- CALL FAR PTR LocalFree
- MOV SP, BP
- POP BP
- RET
- Procedure0846 ENDP
-
-
- Procedure0855 PROC NEAR
- NOP
- PUSH BP
- MOV BP, SP
- SUB SP, 4
- CMP WORD PTR [BP+4], 0
- JNZ L086EH
- PUSH WORD PTR [BP+6]
- CALL NEAR PTR Procedure080C
- ADD SP, 2
- JMP SHORT L08A2H
- NOP
- L086EH: MOV AX, 0FFFFH
- PUSH AX
- CALL FAR PTR LockSegment
- PUSH WORD PTR [BP+4]
- CMP WORD PTR [BP+6], 0
- JZ L0886H
- MOV AX, WORD PTR [BP+6]
- JMP SHORT L0889H
- NOP
- L0886H: MOV AX, 0001H
- L0889H: PUSH AX
- MOV AX, 0062H
- PUSH AX
- CALL FAR PTR LocalRealloc
- MOV WORD PTR [BP-2], AX
- MOV AX, 0FFFFH
- PUSH AX
- CALL FAR PTR UnlockSegment
- MOV AX, WORD PTR [BP-2]
- L08A2H: MOV SP, BP
- POP BP
- RET
- Procedure0855 ENDP
-
-
- Procedure08A6 PROC NEAR
- PUSH BP
- MOV BP, SP
- PUSH WORD PTR [BP+4]
- CALL FAR PTR LocalSize
- MOV SP, BP
- POP BP
- RET
- Procedure08A6 ENDP
-
-
- Procedure08B5 PROC NEAR
- NOP
- Procedure08B5 ENDP
-
- END L01ACH